package com.cp.admin.modular.system.service;

import com.baomidou.mybatisplus.service.IService;
import com.cp.admin.api.entity.vo.DeptVO;
import com.cp.admin.modular.system.model.Dept;
import com.cp.core.node.ZTreeNode;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 部门服务
 *
 * @author fengshuonan
 * @date 2017-04-27 17:00
 */
public interface IDeptService extends IService<Dept> {

    /**
     * 删除部门
     */
    void deleteDept(Long deptId);

    /**
     * 获取ztree的节点列表
     */
    List<ZTreeNode> tree();

    /**
     * 获取所有部门列表
     */
    List<Map<String, Object>> list(@Param("condition") String condition);

    /**
     * 获取所有子部门
     * @param pId
     * @return
     */
    List<Dept> getChildDeptList(Long pId);

    /**
     * 获取部门及其子部门列表
     * @param deptId
     * @return
     */
    DeptVO getDeptList(Long deptId);

//    /**
//     * 查询部门及子部门的会员列表
//     * @param deptId    部门Id,全部未null
//     * @return
//     */
//    List<UserListVO> getDeptUser(Long deptId);

    /**
     * 获取部门及子部门Id集合
     * @param deptId
     * @return
     */
    List<Long> getDeptChildList(Long deptId);
}
